package huawei;

/**
 * 我们不能把不相容的货物装在同一集装箱里运输，如果氧化剂绝对不能跟易燃液体同箱，否则很容易造成爆炸或其他危险。现给一张不相容物品清单，及每一集装箱货物运输清单。请你判断每个集装箱是否安全。
 *
 * 输入
 * 首航输入两个正整数：分别代表不相容货物对的数量 N (0,10000]和集装箱货品清单的数量 M (0,100]
 * 接下来 N 行每一行是一对不相容货物编号；编号都是 5 位数，编号对之间是空格。
 * 然后输入 M 行，每一行包含一个集装箱货物总数[1,1000]与货物编号明细。
 * 输出
 * 对每箱货物清单，判断是否可以安全运输；按照顺序输入，安全则输出 Yes ，否则输出No ，每行以换行结束。
 * 输入样例1：
 * 6 3
 * 20001 20002
 * 20003 20004
 * 20005 20006
 * 20003 20001
 * 20005 20004
 * 20004 20006
 * 4 00001 20004 00002 20003
 * 5 98823 20002 20003 20006 10010
 * 3 12345 67890 23333
 *
 * 输出样例：
 * No
 * Yes
 * Yes
 */
public class Demo2 {

    public static void main(String[] args) {

    }

    private static boolean[] safeStatus(int N, int M, int[][] huchi, int[][] jizhuangxiang){
        boolean[] status = new boolean[M];

        for (int i = 0; i < M; i++){
            status[i] = true;

            int[] goods = jizhuangxiang[i];
            //获取集装箱中货物数量
            int num = goods[0];
            for (int k = 1; k <= num - 1; k++){
                int good = goods[k];

                for (int j = k + 1; j <= num; j++){
                    //判断当前货物，与剩余货物是否存在互斥，存在，则返回false，不存在，则返回true
                    for (int[] array: huchi){
                        if (!isSafe(good, goods[j], array)){
                            status[i] = false;
                        }
                    }
                }

            }
        }

        return status;
    }

    private static boolean isSafe(int goodID, int compareGood,int[] array){
        if (goodID == compareGood){
            return true;
        }

        boolean haveGood = false;
        boolean haveCompareGood = false;
        for (int data: array){
            if (data == goodID){
                haveGood = true;
            }

            if (compareGood == data){
                haveCompareGood = true;
            }
        }

        if (haveGood && haveCompareGood){
            return false;
        }
        return true;
    }


}
